package com.bzsg.rightsManagementSystem.service

import com.bzsg.rightsManagementSystem.pojo.Permission




interface PermissionService {
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    fun queryById(id: Int): Permission?

    /**
     * 查询多条数据
     *
     * @param permission 权限条件
     * @return 对象列表
     */
    fun queryAll(): List<Permission>?

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    fun queryAllByLimit(offset: Int, limit: Int): List<Permission>?

    /**
     * 新增数据
     *
     * @param permission 实例对象
     * @return 实例对象
     */
    fun insert(permission: Permission)

    /**
     * 修改数据
     *
     * @param permission 实例对象
     * @return 实例对象
     */
    fun update(permission: Permission)

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    fun deleteById(id: Int)

    /**
     * 查询用户的权限列表
     *
     * @param userId
     * @return 权限列表
     */
    fun selectListByUser(userId: Int): List<Permission>?

    /**
     * 查询具体某个接口的权限
     *
     * @param path
     * @return 权限列表
     */
    fun selectListByPath(path: String): List<Permission>?

    /**
     * 查询角色下具有的所有权限
     *
     * @param roleId
     * @return 权限列表
     */
    fun selectPermissionsByRoleId(roleId: Int): List<Permission>?

    /**
     * 查询权限数量
     *
     * @param
     * @return 权限列表
     */
    fun selectTotalPermission(): Int
    fun deleteAllPermissionPathRelationByPermissionId(permissionId: Int)
    fun addPermissionPathRelation(permissionId: Int, requestPathId: Int)
}